package com.spsoft.core.model.leqidmz.param;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;

/**
 * 上传不动产销售数电票参数
 *
 * @author : chenxudong
 * @date : 2024/3/21 16:39
 */
@ApiModel(value = "上传不动产销售数电票参数")
@EqualsAndHashCode(callSuper = true)
@Data
public class UploadInvoiceParamsBdcxs extends UploadInvoiceParams {

    private List<GtgmfInfo> gtgmfList;

    private List<Bdcxstdys> bdcxstdys;


    @ApiModel(value = "共同购买方")
    @Data
    public static class GtgmfInfo {
        /**
         * 共同购买方
         */
        @ApiModelProperty(value = "共同购买方")
        private String gtgmf;

        /**
         * 证件类型
         */
        @ApiModelProperty(value = "证件类型")
        private String zjlx;

        /**
         * 证件号码
         */
        @ApiModelProperty(value = "证件号码")
        private String zjhm;
    }

    @ApiModel(value = "不动产销售特定要素")
    @Data
    public static class Bdcxstdys {

        /**
         * 序号
         */
        @ApiModelProperty(value = "序号")
        private int xh;

        /**
         * 不动产单位代码
         */
        @ApiModelProperty(value = "不动产单位代码")
        private String bdcdwdm;

        /**
         * 网签合同备案编号
         */
        @ApiModelProperty(value = "网签合同备案编号")
        private String wqhtbabh;

        /**
         * 不动产坐落地址（省）
         */
        @ApiModelProperty(value = "不动产坐落地址（省）", required = true)
        @NotBlank(message = "不动产坐落地址（省）")
        private String bdczldzS;

        /**
         * 不动产坐落地址（市）
         */
        @ApiModelProperty(value = "不动产坐落地址（市）")
        private String bdczldzS1;

        /**
         * 不动产坐落地址（详细地址）
         */
        @ApiModelProperty(value = "不动产坐落地址（详细地址）", required = true)
        @NotBlank(message = "不动产坐落地址（详细地址）")
        private String bdczldzXxdz;

        /**
         * 土地增值税项目号
         */
        @ApiModelProperty(value = "土地增值税项目号")
        private String tdzzsxmbh;

        /**
         * 跨地（市）标志
         */
        @ApiModelProperty(value = "跨地（市）标志", required = true)
        @NotBlank(message = "跨地（市）标志")
        private String kdsbz;

        /**
         * 核定计税价格
         */
        @ApiModelProperty(value = "核定计税价格")
        private BigDecimal hdjsjg;

        /**
         * 实际成交含税金额
         */
        @ApiModelProperty(value = "实际成交含税金额")
        private BigDecimal sjcjhsje;

        /**
         * 产权证书/不动产权证号
         */
        @ApiModelProperty(value = "产权证书/不动产权证号")
        private String cqzsbh;
    }

}
